Lvalue단일 표현식 이후에도 없어지지 않고 지속되는 객체
Rvalue
표현식이 종료된 이후에는 더이상 존재하지 않는 임시적인 값
#include <iostream>
#include <string>
using namespace std;
int main(void){
int x=3;
const int y=x;
int z=x+y;
int* p=&x;
cout<<string("one");
++x;
x++;
}
++x는 증가된 x 자신을 리턴하기 대문에 Lvalue 이지만,
x++는 증가된 복사본을 리턴하기 때문에 Rvalue이다.
& 연산자는 Lvalue를 참조한다.
&& 연산자는 Rvalue를 참조한다.(C++11 이상)
int rvalue(){
return 10;
}
int main(void){
int lvalue=10;
int& a=lvalue;
int&& c=rvalue();
}